<?php
	session_start();
	require_once $_SERVER['roottrivialchase']."/classes/ConnectToBD_cmix.class.php";

	if(!isset($_COOKIE['cmix']) || !isset($_COOKIE['login'])){
		header("Location: ".$_SERVER['plateforme']."/index.php");
	}
	else
	{
	$sess_pretendu=$_COOKIE['cmix'];
	$login_pretendu=$_COOKIE['login'];
	
	//Si le cookie du client a un numero different de celui attribue par le serveur
	//Par exemple lors de la premiere connexion du client sur ce serveur de jeu...
	
	
	if(session_id()!=$sess_pretendu || !isset($_COOKIE['trusted']) || mt_rand(1,10)<=2 ) //Si l'utilisateur n'a 
	//pas donne le meme ID de session que celui du serveur, ou si le cookie indiquant le temps 
	//pendant lequel on fait "confiance" a l'utilisateur est expire, ou si le tirage aleatoire 
	//force la verification ( ceci afin d'avoir une part de non determinisme, pour limiter 
	//les possibilites de triche d'un joueur )
	{
		//Le serveur va verifier sur la BDD qui fera foi
		$dblink=ConnectToBD_cmix::connexion();
		
		
		if(!$dblink){
			echo "La connexion a la base de donnees a echoue...";
			die();
		}
		
		
		$query="SELECT * FROM utilisateur WHERE login='".$login_pretendu."' and session_id='".$sess_pretendu."';";
		$result=$dblink->prepare($query);
		$result->execute();

		
		
		//S'il n'y a pas de numero de session associe a ce login dans la BDD
		if($result->rowCount()==0){
			header("Location: ".$_SERVER['trivialchase']."/secure/logout.php");
		}
		else{ //Si l'utilisateur n'a pas menti sur son login et son numero de session
			if(session_id()!=$sess_pretendu){
				session_destroy();
				session_id($sess_pretendu);
				session_start();
			}
			//On lui redonne le meme numero de session que sur le site de la plateforme
			$rows=$result->fetch(PDO::FETCH_ASSOC);
			unset($rows['mot_de_passe']);
			$_SESSION['user']=$rows;
			$_SESSION["login"]=$rows['login'];
			/* setcookie("cmix", session_id(), time()+86400, "/", "cmix.com", true);
			setcookie("login", $_SESSION['login'], time()+86400, "/", "cmix.com", true); Code a decommenter au deploiement
			setcookie("trusted", true, time()+60, "/", "cmix.com", true); 
			
			setcookie("login", $_SESSION['login'], time()+86400, "/", $_SERVER['SERVER_NAME'], false);
			setcookie("cmix", session_id(), time()+86400, "/", $_SERVER['SERVER_NAME'], false);
			setcookie("trusted", true, time()+60, "/", $_SERVER['SERVER_NAME'], false);*/
			
			//Pour que le joueur ne soit pas kicke du jeu, on va faire un update sur sa
			//ligne de base de donnee pour mettre son champ "derniere requete" a jour
			$update=("UPDATE utilisateurs SET last_request=current_timestamp, session_id='".session_id()."' WHERE login=\"".$_SESSION['login']."\";");
			$result=$dblink->prepare($update);
			$result->execute();
		}
	}
	
	else //Si le joueur a donne le bon id de session
	{
		setcookie("cmix", session_id(), time()+86400, "/", "cmix.com", true);
		setcookie("login", $_SESSION['login'], time()+86400, "/", "cmix.com", true);
	}
		
}

?>